Javascript를 사용하면서 뭔가 특이한 점이 있다면 바로 this가 아닐까 생각한다.
Javscript에서 this
는 함수가 실행될 때 결정된다. 함수가 실행되는 context에 따라 this
의 참조가 바뀐다.
모든 함수 밖에서 사용하는 경우 this
는 globalThis를 참조한다.
함수 안에서 사용하는 경우
클래스 안에서 사용하는 경우 클래스도 곧 함수이기 때문에 this
의 동작이 비슷하긴 하나 몇가지 차이점이 있다.
this
의 prototype에 추가된다.하위 클래스에서 사용하는 경우 super()
를 호출하기 전까지 this
는 binding되어있지 않다.